package cn.ydxiaoshaui.aip.imageclassify.bean;

import java.io.Serializable;
import java.util.List;

/**
 * @Description 车辆外观损伤识别
 * @author 小帅丶
 * @className VehicleDamageDetect
 * @Date 2019/9/26-17:43
 **/
public class VehicleDamageDetect implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 唯一的log id，用于问题定位 */
    private Long log_id;
    /** 识别结果 */
    private Result result;

    public Long getLog_id() {
        return log_id;
    }

    public void setLog_id(Long log_id) {
        this.log_id = log_id;
    }

    public Result getResult() {
        return result;
    }

    public void setResult(Result result) {
        this.result = result;
    }

    private static class Result {
        /** 识别结果 */
        private List<DamageInfo> damage_info;
        /** 检验图片效果是否满足识别要求，包含车辆检测、图片内容过滤两部分 */
        private String description;

        public List<DamageInfo> getDamage_info() {
            return damage_info;
        }

        public void setDamage_info(List<DamageInfo> damage_info) {
            this.damage_info = damage_info;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }
    }
    private static class DamageInfo {
        /** 识别结果 */
        private Float probability;
        /** 识别结果 */
        private String parts;
        /** 识别结果 */
        private String type;
        /** 损伤的数值化输出结果 */
        private List<NumericInfo> numeric_info;

        public Float getProbability() {
            return probability;
        }

        public void setProbability(Float probability) {
            this.probability = probability;
        }

        public String getParts() {
            return parts;
        }

        public void setParts(String parts) {
            this.parts = parts;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public List<NumericInfo> getNumeric_info() {
            return numeric_info;
        }

        public void setNumeric_info(List<NumericInfo> numeric_info) {
            this.numeric_info = numeric_info;
        }
    }
    private static class NumericInfo {
        /** 损伤区域的面积，为实际面积，不是单纯的长*宽 */
        private Double area;
        /** 损伤区域的长，单位厘米 */
        private Double height;
        /** 损伤区域面积相对于部件面积的占比，= 损伤区域面积 / 部件区域面积，均为实际面积，不是单纯的长*宽 */
        private Double ratio;
        /** 损伤区域的宽，单位厘米 */
        private Double width;

        public Double getArea() {
            return area;
        }

        public void setArea(Double area) {
            this.area = area;
        }

        public Double getHeight() {
            return height;
        }

        public void setHeight(Double height) {
            this.height = height;
        }

        public Double getRatio() {
            return ratio;
        }

        public void setRatio(Double ratio) {
            this.ratio = ratio;
        }

        public Double getWidth() {
            return width;
        }

        public void setWidth(Double width) {
            this.width = width;
        }
    }
}
